
var glob = require('glob')

// 获取构建时的项目名称
function getProjectName () {
  var projectname = process.argv[3]
  if (!projectname) throw new Error('请在yarn build或者npm run build 中指定指定需要构建的目录名称, 如yarn build xxx')
  return projectname
}

// 自动获取所有入口文件
function getEntry () {
  var entries = {}
  var items = glob.sync('./src/project/*/*.js')
  for (var i in items) {
    var filepath = items[i]
    var fileList = filepath.split('/')
    var fileName = fileList[fileList.length - 2]
    entries[fileName] = {
      entry: `src/project/${fileName}/main.js`,
      // 模板来源
      template: `public/index.html`,
      // 在 dist/index.html 的输出
      filename: `${fileName}.html`,
      // 提取出来的通用 chunk 和 vendor chunk。
      chunks: ['chunk-vendors', 'chunk-common', fileName]
    }
  }
  return entries
}

function getProductionConfig () {
  return {
    productionSourceMap: false,
    pages: {
      index: {
        // page的入口
        entry: 'src/project/' + getProjectName() + '/main.js',
        // 模板来源
        template: 'public/index.html',
        // 在 dist/index.html 的输出
        filename: 'index.html',
        title: getProjectName(),
        chunks: ['chunk-vendors', 'chunk-common', 'index']
      }
    },
    outputDir: `dist/${getProjectName()}`
  }
}

module.exports = {
  development: {
    pages: getEntry()
  },
  production: process.env.NODE_ENV === 'production' ? getProductionConfig() : {}
}
